.. _cmmGnDeviceLoad: cmmGnDeviceLoad ================= ----------------- .. warning:: CMMSDK API를 사용하기 위해 :ref:`cmmloadDll` 이후 사용되어야 하는 함수입니다. SYNOPSYS ````````````` .. code-block:: none VT_I4 cmmGnDeviceLoad ( [in] VT_I4 IsResetDevice, [out] VT_PI4 NumAxes ) PARAMETER `````````````` - IsResetDevice : 장치 초기화를 수행할지를 결정합니다. +----------------+-------------------------------------------------------------------------------+ | Value | Meaning | +================+===============================================================================+ | 0 또는 cmFALSE | 장치 로드 시에 장치를 초기 값으로 초기화하지 않습니다. | +----------------+-------------------------------------------------------------------------------+ | 1 또는 cmTRUE | 장치 로드 시에 장치를 리셋한 후 장치의 여러 속성들을 기본값으로 초기화합니다. | +----------------+-------------------------------------------------------------------------------+ NumAxes : 모션 제어 축의 개수를 반환합니다. NULL을 전달할 경우 에러코드를 반환하지 않습니다. DESCRIPTION ````````````` - 시스템에 설치된 하드웨어 장치를 로드합니다. RETURN VALUE ````````````` - 장치 로드 성공 여부를 반환합니다. +------------+----------------+ | Value | Meaning | +============+================+ | 음수 | 수행 실패. | +------------+----------------+ | cmERR_NONE | 수행 성공 | +------------+----------------+ Example ````````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 #include “Cmmsdk.h” #include “CmmsdkDef.h” void ProgramInitial(void) { long nNumAxes = 0; if ( cmmLoadDll() != TRUE ) { /* OutputDebugString API 는 GUI 프로그램에서 문자열을 디버거에 보낼 수 있습니다. Borland C++ Builder 에서는 DebugWindows 에 Event Log 를 확인(確認)할 수 있으며, MS VC++ 에서는 Debug 윈도우에서 확인(確認)할 수 있습니다. */ OutputDebugString(“DLL 로드에 실패하였습니다”); // 이후 적절한 에러처리를 해주시기 바랍니다. } if ( cmmGnDeviceLoad(cmTRUE, &nNumAxes) != cmERR_NONE ){ // MS VC++ 에서는 아래와 같이 에러 원인을 화면에 표시할 수 있습니다. cmmErrShowLast(GetSafeHwnd()); // Borland C++ 계열에서는 아래와 같이 에러원인을 화면에 표시할 수 있습니다. cmmErrShowLast(Form1->Handle); } } /* ProgramInitial(void) 함수의 끝 */ ----------------------------------------------------------------------------------------------------------------------------- Visual Basic ‘ Visual Basic 에서는 명시적인 DLL 로드가 필요 없습니다. Private Sub Form_Load() Dim IRetVal As Long Dim nTotalAxes As Long IRetVal = cmmGnDeviceLoad(cmTRUE, nTotalAxes) If IRetVal <> cmERR_NONE Then MsgBox(“cmmGnDeviceLoas has been failed”) End If End Sub ------------------------------------------------------------------------------------------------------------------------------ Delphi //* Delphi 에서는 명시적인 DLL 로드가 필요없습니다. //* 단, 처음 선언 시에 다음과 같은 내용이 포함되어야 합니다. ///////////////////////////////////////////////////////////// // COMZIOA SDK Library 를 위한 인터페이스 파일을 사용합니다. uses CmmSDK; //////////////////////////////////////////////////////////// procedure TForm1.OnCreate(Sender: TObject); var g_nAxes : LongInt; begin if ( cmmGnDeviceLoad(cmTRUE, @g_nAxes) <> cmERR_NONE ) then begin cmmErrShowLast(Form1.Handle); exit; end; end; .. seealso:: :ref:`cmmloadDll` , :ref:`cmmGnDeviceUnload`